package io.github.talelin.latticy.service;

import io.github.talelin.latticy.dto.admin.ResetPasswordDTO;
import io.github.talelin.latticy.dto.omsuser.CreateOmsUserDTO;
import io.github.talelin.latticy.dto.omsuser.UpdateOmsUserDTO;
import io.github.talelin.latticy.dto.query.BasePageDTO;
import io.github.talelin.latticy.model.UserDO;
import io.github.talelin.latticy.model.WmsOmsUserRelDO;
import com.baomidou.mybatisplus.extension.service.IService;
import io.github.talelin.latticy.vo.PageResponseVO;
import io.github.talelin.latticy.vo.UpdatedVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author generator@wulongbo
 * @since 2022-05-28
 */
public interface WmsOmsUserRelService extends IService<WmsOmsUserRelDO> {

    /**
     * 创建oms客户
     *
     * @param dto
     * @return
     */
    boolean createOmsUser(CreateOmsUserDTO dto);

    /**
     * 用户id查询oms客户
     * @param id
     * @return
     */
    UserDO getUserById(Integer id);

    /**
     * 查询所有Oms客户(非分页)
     *
     * @return
     */
    List<UserDO> getUserOmsList();

    /**
     * 查询所有Oms客户
     *
     * @param dto
     * @return
     */
    PageResponseVO<UserDO> getUserOmsPage(BasePageDTO dto);

    /**
     * 修改oms客户
     * @param id
     * @param dto
     * @return
     */
    UpdatedVO updateOmsUser(Integer id, UpdateOmsUserDTO dto);

    /**
     * 修改用户密码（重置用户密码）
     *
     * @param id  用户id
     * @param dto 密码信息
     * @return 是否修改成功
     */
    UpdatedVO changeUserPassword(Integer id, ResetPasswordDTO dto);

    /**
     * 删除oms客户
     * @param id
     * @return
     */
    boolean deleteOmsUser(Integer id);
}
